Portable electronic book viewer

ABSTRACT

A portable electronic book viewer receives electronic text and graphic files, or electronic books, by connection to a television program delivery system. The electronic books may provided as compressed data that is transmitted with a video signal. The electronic books are transmitted in the vertical blanking interval of the video signal. The electronic books may be received at a set top terminal, and stored in memory at the set top terminal. A hardware upgrade may be added to a conventional set top terminal to provide for reception, storage and processing of the electronic books. Such storage may be by way of a hard disk, a floppy disk, an optical disk, and a magnetic cartridge for example. The portable viewer may receive the electronic books from the set top terminal. The portable viewer may then decompress the electronic books for display and viewing. The electronic books are decompressed only at the time of viewing.

RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No. 07/991,074, filed Dec. 9, 1992, entitled REMOTE CONTROL FOR MENU DRIVEN SUBSCRIBER ACCESS TO TELEVISION PROGRAMMING, which is hereby incorporated by reference.

BACKGROUND

The invention relates to television entertainment systems for providing television programming to consumer homes. More particularly, the invention relates to cable television packaging, delivery and presentation systems which provide consumers with many television programming options.

Advances in television entertainment have been primarily driven by breakthroughs in technology. In 1939, advances on Vladmir Zworykin's picture tube provided the stimulus for NBC to begin its first regular broadcasts. In 1975, advances in satellite technology provided consumers with increased programming to homes.

Many of these technology breakthroughs have produced inconvenient systems for consumers. One example is the ubiquitous three remote control home, having a separate and unique remote control for the TV, cable box and VCR. More recently, technology has provided cable users in certain parts of the country with 100 channels of programming. This increased program capacity is beyond the ability of many consumers to use effectively. No method of managing the program choices has been provided to consumers.

Consumers are demanding that future advances in television entertainment, particularly programs and program choices, be presented to the consumer in a user friendly manner. Consumer preferences, instead of technological breakthroughs, will drive the television entertainment market for at least the next 20 years. As computer vendors have experienced a switch from marketing new technology in computer hardware to marketing better useability, interfaces and service, the television entertainment industry will also experience a switch from new technology driving the market to consumer useability driving the market.

Consumers want products incorporating new technology that are useful, and will no longer purchase new technology for the sake of novelty or status. Technological advances in sophisticated hardware are beginning to surpass the capability of the average consumer to use the new technology. Careful engineering must be done to make entertainment products incorporating new technology useful and desired by consumers.

In order for new television entertainment products to be successful, the products must satisfy consumer demands. TV consumers wish to go from limited viewing choices to a variety of choices, from no control of programniing to complete control. Consumers wish to advance from cumbersome and inconvenient television to easy and convenient television and keep costs down. Consumers do not wish to pay for one hundred channels when due to lack of programming information, they seldom, if ever, watch programming on many of these channels.

The concepts of interactive television, high definition television and 300 channel cable systems in consumer homes will not sell if they are not packaged, delivered and presented in a useable fashion to consumers. The problem is that TV programming is not being managed, packaged, delivered, and presented to consumers in a user friendly manner.

Consumers are already being bombarded with programming options, numerous “free” cable channels, subscription cable channels and pay-per-view choices. Any further increase in TV entertainment choices, without a user friendly presentation and approach, will likely bewilder viewers with a mind-numbing array of choices.

The TV industry has traditionally marketed and sold its programs to consumers in bulk, such as continuous feed broadcast and long-term subscriptions to movie channels. The TV industry is unable to sell its programming in large quantities on a unit per unit basis, such as the ordering of one program. Consumers prefer a unit sales approach because it keeps costs down and allows the consumer to be more selective in their viewing.

Additionally, viewership fragmentation, which has already begun, will increase. Programming not presented in a user friendly manner will suffer with a decrease in viewership and revenue.

SUMMARY

A portable electronic book viewer receives electronic text and graphic files, or electronic books, by connection to a television program delivery system. The electronic books may provided as compressed data that is transmitted with a video signal. In an embodiment, the electronic books are transmitted in the vertical blanking interval of the video signal.

The electronic books may be received at a set top terminal, and stored in memory at the set top terminal. In an embodiment, a hardware upgrade is added to a conventional set top terminal to provide for reception, storage and processing of the electronic books. Such storage may be by way of a hard disk, a floppy disk, an optical disk, and a magnetic cartridge for example. The portable viewer may receive the electronic books from the set top terminal. The portable viewer may then decompress the electronic books for display and viewing. In an embodiment, the electronic books are decompressed only at the time of viewing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic of the overall system design.

FIG. 2 is a schematic of the primary components of the invention.

FIG. 3a is a diagram of the bandwidth allocation for a 750 mHz system.

FIG. 3b is a diagram/chart of the compressed channel allocation for the system.

FIG. 3c is a diagram showing how three cable television systems with different bandwidths may use the program delivery system of the present invention simultaneously.

FIG. 3d is a diagram showing three different cable headend systems, each system receiving the entire satellite signal and stripping those parts of the signal which cannot be handled by the local cable system.

FIG. 3e is a diagram showing dynamic change in bandwidth allocation from a typical week day prime time signal.

FIG. 4a is a block diagram of the Operations Center and Master Control Site.

FIG. 4b is a block diagram of the computer assisted packaging shown in FIG. 4a.

FIG. 5 is a flow chart of the processing occurring at the Operations Center.

FIG. 6 is a chart of the program control information carried by the program control information signal.

FIG. 7a is a block diagram of the internals of the set top terminal.

FIG. 7b is a block diagram of an alternative embodiment of the internals of the set top terminal.

FIG. 8a is a perspective front view of a set top terminal.

FIG. 8b is a perspective rear view of a set top terminal.

FIG. 9a is a schematic of a basic decompression box and upgrade module, with the associated connections.

FIG. 9b is a schematic of an alternative embodiment of a simple decompression unit and upgrade module, with associated connections.

FIG. 10a is a drawing of storage for on-screen menu templates stored in graphics memory of the set top terminal.

FIG. 10b is a drawing showing the hierarchical storage of graphics memory for the set top terminal.

FIG. 10c is a drawing of a flow chart showing the steps required for the microprocessor to retrieve, combine and display a menu.

FIG. 10d is a drawing of a flow chart showing the steps required for the microprocessor to sequence program menus.

DETAILED DESCRIPTION

FIG. 1 shows an overview of the cable television menu driven program delivery system 200. The Operations Center 202 is shown receiving external programming signals which correspond to particular programming categories that are available for a subscriber's viewing. These external signals may be in analog or digital form and may be received via landline, microwave transmission, or satellite. Some of these external signals may be transmitted from the program source to the Operations Center 202 in compressed digital format or other nonstandard digital formats. These external signals are received and packaged along with programming that is stored at the Operations Center 202 (not shown here).

Examples of external program sources 204 shown in FIG. 1 are: Sporting events, children's programs, documentaries, high definition TV sources, specialty channels, interactive services, weather, news, and other nonfiction or entertainment. Any source that can provide either audio or video or both may be utilized to provide programming to the Operations Center 202.

After packaging, the packaged television program signal is prepared for satellite transmission 206 and sent from the Operations Center 202 to the cable headend 208 via satellite transmission 206. Depending on the specific embodiment, the television program signal may need to be compressed, combined/multiplexed, encoded, mapped, modulated, upconverted and amplified. This system, which is intended to be compatible with existing C and Ku Band satellite transmission 206 technologies, accepts video, audio and data signals ranging in signal quality, and input from a number of sources.

Upon receipt of the programming signal at the cable headend 208, the signal is again treated if necessary and sent into a concatenated cable system to the subscriber's home. The signal reaches the subscriber's home in a compressed format and must be decompressed prior to viewing. Included in the delivered program signal is information which enables equipment at the subscriber's home to display menus for choosing particular programs. Depending on the particular embodiment, the television program signal may arrive at the subscriber's home via one or more coaxial cables, fiber cables, twisted pairs, cellular telephone connections, or personal communications network (PCN) hookups.

This connection between the subscriber's home and the cable headend 208 allows for two-way communications. Utilizing this two-way communications, the cable headend 208 receives information about a subscriber's account, billing, and programs viewed. Also, the cable headend 208 is capable of sending computer data or computer software information to the subscriber's home.

As shown in FIG. 1, an analog cable TV system 210 can continue to exist alongside and within the digitally compressed system of the present invention. The digital transmissions do not effect the analog system. In fact, the analog cable signal may be transmitted simultaneously on the same cable as the digital signal. The cable headends may continue to supply subscribers with local channels in an analog signal format.

FIG. 2 shows a more detailed overview of the operation of the present invention. The Operations Center 202 shown performs program packaging and delivery control. In the preferred embodiment, the packaged program signal will be treated at a master control uplink site 211 prior to being transmitted to the satellite 206. Various satellite multi-accessing schemes and architectures can be used with the system, including both single channel per transponder time division multiplex (IDM) and multiple channel per transponder single channel per carrier (SCPC). Time division multiplexing is the more desirable scheme. The signal is transmitted from the satellite 206 to the cable headend 208 where a computer system including a digital switch treats the signal and delivers it through cables to a subscriber's home. In alternate embodiments, multiple Operations Center 202 and multiple uplink sites can be simultaneously utilized.

In the embodiment shown in FIG. 2, two cables 216 are used between the cable headend 208 and the subscriber's home. In this particular embodiment, analog signals, digitally compressed signals, other digital signals and up-stream/interactivity signals are sent and received over the two cables 216.

The cable headend 208 receives the digitally compressed and multiplexed signal from the satellite 206 and processes the signal for further distribution to the subscriber homes. The cable headend 208 performs two primary functions in the cable delivery system. It will act as a signal processor 212 and distribution center for routing the digitally compressed signals to subscribers and it will act as a network controller 214 receiving information from subscribers and passing the information on to the Operations Center 202 or other remote sites (such as regional, statistical and billing sites not shown). In order to perform these two functions, the cable headend 208 of the preferred embodiment is equipped with two computer processors working in unison. Use of two processors performing different functions increases the speed and capability of the cable headend 208 without a significant increase in cost. One processor, the signal processor 212, handles the receiving and processing of the satellite 206 signal for distribution to subscribers. The second processor acts as a network controller 214 and monitors activity of the subscriber's set top terminal 220. The cable headend 208 can be operated by one CPU or a series of CPU's which perform the signal processing and network control functions.

The signal processor 212 will treat the signal as necessary for use by the subscriber's set top terminal 220. In the simplest embodiment, the amount of processing that is necessary by the signal processor 212 is limited to demultiplexing and frequency allocation. However, in alternative embodiments, the signal processor 212 demultiplexes the signal, allocates frequencies and then re-multiplexes the signal using a different multiplexing scheme prior to the signal's distribution to the subscriber. In addition, for embodiments in which the control of local availability time is desired at the cable headend 208, the signal processor 212 must be capable of compressing and adding additional signals to the satellite 206 signal. In order to incorporate local programming, the signal processor 212 would demultiplex the satellite 206 signal, compress the local programming, combine the compressed local program with the satellite 206 signal and then multiplex the signal prior to delivery to the subscriber terminals. Most of the activities necessary for incorporating local programming will be automatically performed by the signal processor 212. In the preferred embodiment, the signal processor 212 incorporates all the necessary digital switching capability to serve numerous subscribers.

Signals received by the cable headend 208 must be decompressed before transmission from headend to subscriber location only when the compression algorithm used for the cable system differs from the one used for satellite transmission 206. This difference may result from different bandwidth constraints between the cable transmission media and the satellite 206 transponder. Such a difference would necessitate the use of separate compression algorithms to maintain desired signal quality and throughput over both of the transmission mediums.

System control is performed by the network controller 214. The primary task of the network controller 214 at the cable headend 208 is to manage the configuration of the set top terminals, which includes receiving and processing signals from the set top terminal units. The network controller 214 must also monitor selections at subscribers' homes, maintain accurate account and billing information, authorize subscriber channel access, and authorize particular set top terminals to operate in the system. Information required to operate the network will be stored in memory (either in RAM, ROM, magnetic or optical Read/Write) at the cable headend 208 and also in memory (RAM and/or ROM) within each subscriber's set top terminal 220. Two-way communications between the network controller 214 and set top terminal 220 will occur over cable lines. Interactive television programming can be accommodated through the network controller 214. In addition, the network controller 214 will be able to access set top terminals via phone lines for trouble shooting, special features or sophisticated reprogramming.

The network controller 214 regularly polls each set top terminal 220 to acquire needed information to operate the system. The network controller 214 sends signals to set top terminals to authorize their operation and to authorize access to specific channels. If a subscriber has failed to pay a recent bill, the network controller 214 can deauthorize the subscriber's set top terminal 220. When a subscriber orders program or channel the network controller 214 checks the subscriber's account for good standing and then authorizes the access by signaling the set top terminal 220.

To perform its functions, the network controller 214 must work closely with the signal processor 212. In many instances the program control information signal received from the Operations Center 202 must be modified prior to being sent to the set top terminals. These modifications to the program control information are made by the network controller 214 working in conjunction with the signal processor 212 to send a set top terminal 220 control information stream (STTCIS). From the signal processor 212, the network controller 214 receives the program control information signal which includes cable franchise specific information added by the Operations Center 202. The network controller 214 modifies the program control information signal, if necessary, and communicates the new information to the signal processor 212. The signal processor 212 then forwards the information to the set top terminal 220 in the form of the STTCIS. In most instances the network controller 214 will modify the program control information signal by adding additional information. In a simple embodiment the program control information signal can be passed through the cable headend 208 to the set top terminal 220 without any modifications.

Although the signal processor 212 will handle the addition of simple local availabilities (e.g. local advertisements) into the signal sent to the set top terminal 220, the network controller 214 will handle any of the more sophisticated local programming needs such as interactive programming and certain data services. The network controller 214 will receive any electronic signals sent by the set top terminal 220 including those in response to interactive service requests and some data service requests. The network controller 214 coordinates the necessary switching and access to allow the subscriber to enjoy these services.

The network controller 214 has the capability of performing “on the fly programming” changes, assisting in masking portions of subscriber's television screens (split screen video), assist in selecting different audio signals for the same video (foreign languages), assist in interactive features, create tiered programming, etc. For last minute changes to programming (such as for a local emergency or important regional events), an operator using the network controller 214 can modify the program control information signal “on the fly” and change menus available to the subscriber. This accommodates short notice changes to program packaging that can not be provided to the Operations Center 202 in advance. In order to accommodate split screen techniques for promo and demo video (which will be described later), those undesired video portions of the screen must be masked. The network controller 214 can send the necessary control information to inform the set top terminal 220 to mask portions of a specific channel's video. For example, a video channel with a split screen showing four separate videos would require a ¾ mask to focus the viewer on the featured video clip.

Tiered programming allows different users to view different video even though they are “tuned” to the same channel. For example, the network controller 214 may know the demographics of its subscriber's through a database, by “learning” from prior subscriber choices, from an interactive selection, or from other means. Using the demographics information, the network controller 214 may target commercials to the correct audience by showing different commercials to subscriber's with different demographics. Even though subscriber's will believe they are “tuned” to one channel, they will be switched to a different channel for the tiered video. Alternatively, the subscriber's may be offered an option of several commercials from which to choose.

To accommodate foreign speaking subscribers, multiple audio channels for television programming maybe provided. The subscriber may be shown menus of programs available in his native language. The function of choosing the correct audio to correspond to the selected language may be handled by either the set top terminal 220 or the network controller 214 depending upon the configuration. Local programming in several languages or additional audio channels for a foreign language translation of a popular television program may be provided by the network controller 214. Using a picture-on-picture feature, sign language maybe similarly made available to certain set top terminals for the deaf. Also, a text overlay may be easily produced on the lower part of the screen for the deaf.

In the more sophisticated and expensive embodiments, the network controller 214 can act as a central computer and provide intra-set top terminal interactive games, inter-set top terminal interactive games, computer bulletin board type services, message services (Electronic mail) etc. For example, a subscriber may play war games with six of his (anonymous) fellow subscribers each in their own home each operating a separate tank. The network controller 214 gathers the players via set top terminal communications and acts as the referee. A bulletin board or message system can be set up to discuss a particular program such as “Twin Peaks Whodunit” for enthusiasts. These interactive features are further described below with the interactive services level B menu and the set top terminal hardware upgrade level B interactive unit.

Also shown in FIG. 2 is the set top terminal 220 that receives the signals from the cable headend 208 and manipulates them for the subscriber. The set top terminal 220 is equipped with local computer memory and the capability of interpreting the digitally compressed signal to produce menus for the subscriber. Although the set top terminal 220 is shown on top of the subscriber's television 222, it maybe placed anywhere in the subscriber's home that is accessible by the remote control. The remote control communicates the subscriber's selections to the set top terminal 220. The subscriber's selections are generally based upon menus or other prompts displayed on the television screen. A typical menu is shown in FIG. 2 on the television screen.

One of the achievements of the present invention is effective utilization of digital compression technology by packaging television programs into categories that allow easy access to television programs by consumers. With current digital compression techniques for video, the typical 50-channel capacity cable satellite receiving system can be increased to 300 channels. Presently one transponder is used for each satellite delivered channel. The preferred embodiment uses 18 satellite transponder and compression ratios of 4/1 to 8/1 to achieve a capacity of 136 satellite delivered channels. More transponder or higher compression ratios can be used to deliver up to the channel capacity of any existing cable system.

Typical program packaging and delivery first involves the digitizing of the video signals. This is then followed by one of a variety of digital compression techniques that are available. Following compression the channels must be multiplexed and sent to the satellite 206 dish that will provide the uplink. A variety of multiplexing schemes maybe used in the system. In some situations, it maybe advantageous to use different multiplexing schemes in different parts of the overall system. In other words, one multiplexing scheme may be used for satellite transmission 206 and a second remultiplexing scheme for the land transmission.

Once the signal has arrived at the uplink or master control site, it must be modulated, upconverted, and amplified. Various types of satellites and transponder capable of handling digital signals maybe used in this cable television packaging and delivery system. An example of a digital satellite that may be used is the AT&T Telstar 303.

In order to achieve the required throughput of video and audio information for the system, digital compression techniques for video are employed. A television signal is first digitized. The object of digitization is two-fold: First, in the case of an analog signal, like a television picture, digitization allows the signal to be converted from a wave-form into a digital binary format. Secondly, standard digital formats are designed to have the resulting pictures or video stills take up less space on their respective storage mediums. Essentially, standard digital formats define methods of compression.

A video screen is divided into picture elements known as pixels. Images define one pixel at a time are referred to as “bit-mapped” images. Most compression techniques take the bit-mapped images and convert them into a series of mathematical algorithms both to reduce storage space and to allow for the mathematical manipulation of images that is often not possible with analog formats. This is possible because many images have pixels that repeat themselves. For example, a photograph of a blue, cloudless sky will have a great number of “repeating” picture elements. This redundancy can be represented with great precision by mathematical formulas. Finally, once images have digitized, the standard digitized formats also include techniques required to re-render the images into their final form, either fully bit-mapped or into an analog wave-form. There are three basic digital compression techniques: within-frame (intraframe), frame-to-frame (interframe), and within-carrier. Intraframe compression processes each frame in a television picture to contain fewer visual details and, therefore, the picture contains fewer digital bits. For example, information on blocks of pixels is sent rather than individual digitized pixels themselves. A six by six block of pixels contains thirty-six pixels. Each pixel can be defined by an eight-bit word. Therefore, a six by six block of pixels equals two hundred eighty-eight bits. If the information on the block rather than the individual pixels themselves, is transmitted, this reduces the amount of information transmitted. Blocks of various sizes may be used as is known by those skilled in the art.

Interframe compression transmits only changes between frames, thus omitting elements repeated in successive frames. Motion prediction technology and motion detection technology are necessary to determine what portions of a changing picture may be compressed. Therefore, if a block does not vary between several frames, the block is transmitted once, and repeated at the receive site for successive frames.

Within-carrier compression allows the compression ratio to dynamically vary depending upon the amount of changes between frames. If a large number of changes occur between frames, the compression ratio drops from, for example, sixteen-to-one to eight-to-one. If action is intense, the compression ratio may dip to four to one.

Various compression methods are used for the above techniques. In vector quantization, a block is compared to a library of standard blocks and a best fit comparison is made between the two. Each block in the library has a corresponding sixteen bit code. Only this code is transmitted to represent the block, rather than the actual block of pixels itself. Therefore, a two hundred eighty-eight bit block of pixels is converted into a sixteen bit code resulting in a compression ratio of: 288 bits/16 bits=18. The converse process is performed at the receive site to convert the sixteen bit codes into two hundred eighty-eight bit blocks for reproduction on a television receiver. Other types of compression are known to those skilled in the art, including, for example, discrete cosine transform (“DCT”).

Several standard digital formats representing both digitizing standards and compression standards have been developed. For example, JPEG (joint photographic experts group) is a standard for single picture digitization. Motion picture digitization maybe represented by standards such as MPEG or MPEG2 (motion picture engineering group specification). Other proprietary standards have been developed in addition to these. Although MPEG and MPEG2 for motion pictures are preferred in the present invention, any reliable digital format with compression may be used with the present invention.

Various hybrids of the above compression techniques have been developed by several companies including AT&T, Compression Labs, Inc., General Instrument, Scientific-Atlanta, Philips, and Zenith. As is known by those skilled in the art, any of the compression techniques developed by these companies, and other known techniques, may be used with the present invention.

FIG. 3a shows effective allocation of 750 mHz of bandwidth for television programming. In FIG. 3a bandwidth is allocated for both analog and digitally compressed signals. In the preferred embodiment, the bandwidth is divided so that each category of program receives a portion of the bandwidth. These categories correspond with major menus of the user interface software. The representative categories shown in FIG. 3a include: (1) high definition TV made possible through the use of compression technology, (2) A La Carte Channel category which provides specialty channels for subscription periods such as monthly, and (3) pay-per-view.

FIG. 3b shows a chart of compressed channel allocation for a variety of programming categories that have been found to be desirable to subscribers. By grouping similar shows or a series of shows into blocks of channels, the system is able to more conveniently display similar programming with on-screen television menus. For example, in the movie category, which has the greatest allocation of channels, the same movie may be shown continuously and simultaneously on different channels. Each channel starts the movie at a different time allowing the subscriber to choose a more suitable movie starting time.

In order to accommodate cable TV systems that have different bandwidths and channel capacities, the television programming and television program control information may be divided into parts such as priority one, two, three. The large bandwidth cable TV systems can accommodate all the parts of the television programming and all parts of the television programming control information. Those cable TV systems with a more limited bandwidth are able to use the program delivery system 200 by only accepting the number of parts that the cable system can handle within its bandwidth.

For instance, as is shown in FIG. 3c, three cable television systems with different bandwidths may use the program delivery system 200 simultaneously with each system accepting only those parts of the information sent which it is capable of handling. Priority one television programming and menus 230 are accepted by all three systems. Priority two television programming and menus 233 are not accepted by the cable television system whose capacity is the smallest or in this case 330 mHz (40 channels) system. Priority two television programming and menus 233 are accepted and used by the two larger capacity cable television systems shown. Priority three television programming and menus 236 are only used by the largest capacity television system which is capable of handling all three parts—Priority one, two and three programming and menu information.

With this division of television programniing and menus, the program delivery system 200 may be utilized simultaneously by a variety of concatenated cable systems with varying system capacities. By placing the heavily watched or more profitable programming and menus in the Priority one division, both users and owners of the cable TV systems will be accommodated as best as possible within the limited bandwidth.

FIG. 3d shows three different cable headend 208 systems, each system receiving the entire satellite signal from the Operations Center 202 and stripping those parts of the signal which cannot be handled by the local cable system due to bandwidth limitations. In this particular embodiment, the three local cable television systems shown have bandwidth limitations which correspond with the bandwidth limitations depicted in the previous FIG. 3c. As the bandwidth decreases, the programming options available to the viewer in the exemplary on-screen menu decreases. Using this preferred embodiment, the Operations Center 202 is able to send one identical signal to the satellite 206 that is sent to all the cable headends. Each cable headend 208 accepts the entire signal and customizes the signal for the local cable system by stripping those portions of the Operations Center 202 signal that are unable to be handled by the local cable system. An alternate embodiment requires the Operations Center 202 to send different signals for reception by different capacity cable headends.

There are several ways in which the cable headend 208 may strip the unnecessary signal from the Operations Center 202. A person skilled in the art will derive many methods from the three examples discussed below. One simple method is for the cable headend 208 receiver to receive the entire signal and then manipulate the signal to strip away those unnecessary portions. A second method is for the signal to be sent in three portions with each portion having a separate header. The cable headend 208 would then recognize the headers and only receive those signals in which the proper header is identified. For the second method, the Operations Center 202 must divide the signal into three parts and send a separate header lead before each signal for each part.

The third and preferred method is for a set of transponder to be assigned to one priority level and each cable headend 208 to receive signals from the transponder corresponding to the proper priority level. For example, if there are three priority levels and 18 transponder, transponder one through nine may be assigned to priority level one, transponder ten through fourteen priority level two, and transponder fifteen through eighteen assigned to priority level three. Thus, a cable headend 208 capable of operating at priority level two only would only receive signals from transponder one through nine, and ten through fourteen.

In addition to dividing the television programming and menus into parts, the Operations Center 202 of the preferred embodiment is also capable of dynamically changing the bandwidth allocation for a particular category of programming. FIG. 3e depicts this dynamic change in bandwidth allocation from a typical week day prime time 238 signal to a Saturday afternoon in October 240 (during the college football season). FIG. 3e highlights the fact that the bandwidth allocated to sports is limited to eight selections during week day prime time 238 but is increased to sixteen selections during a Saturday afternoon in October 240. This dynamic increase in bandwidth allocation allows the system to accommodate changes in programming occurring on an hourly, daily, weekly, monthly, seasonal and annual basis.

In addition to dynamically allocating bandwidth for programming categories, the Operations Center 202 can also dynamically change the menu capacities in order to accommodate the change in programming and bandwidth. For example, on a Saturday afternoon in October 240, the major menu for sports may include a separate subcategory for college football. This subcategory would, in turn, have a separate submenu with a listing of four, six, eight, or more college football games available for viewing. In order to accommodate this dynamic menu change, the Operations Center 202 must add a submenu listing to the major sports menu, create a new or temporary submenu for college football, and allocate the necessary menu space on the college football submenu.

Once the television programs have been packaged and a program control information signal is generated to describe the various categories and programs available, the packaged programs are then digitized, compressed, and combined with the program control information signal. Upon the signal's departure from the Operations Center 202 the breakdown into categories is insignificant and the signal is treated like any other digitally compressed signal.

FIG. 4a shows the basic operations that must occur in order for the packaged signal to be sent to the satellite 206. External digital and analog signals must be received from television programming sources and converted to a standard digital format 242, defined above for the computer assisted packaging equipment (CAP) 246. Also within the Operations Center 202, stored programs 244 must be accessed using banks of looping tape machines or other video storage/retrieval devices, either analog or digital, and converted to a standard digital format 242 prior to use by the CAP 246.

The programmer/packager utilizing the CAP 246 must input a variety of information in order to allow the CAP 246 to perform its function of generating program control information and packaging programs. Some of the information required by the CAP 246 are the date, time slots and program categories desired by the television programmer.

The CAP 246 system includes one or more CPUs and one or more programmer/packager consoles. In the preferred embodiment, each packager console includes one or more CRT screens, a keyboard, a mouse (or cursor movement), and standard video editing equipment. In large Operations Centers 202 s multiple packager consoles may be needed for the CAP 246.

As shown in FIG. 4b, the first step in the operation of the CAP 246 is selecting the type of programming 248 which will be packaged. Basically there are 6 broad categories in which most television programming can be classified: static programming 250, interactive services 252, pay per view 254, live sports specials 256, mini pays 258, and data services. Static programs are programs which will show repetitively over period of time such as a day or week. Static programs include movies showing repetitively on movie channels, children's programs, documentaries, news, entertainment.

Interactive services includes interactive programs using the Vertical Blanking Interval (VBI) or other data streams synchronized with the programming to communicate interactive features (such as those used in education), and games. Pay per view are programs which are individually ordered by the subscriber. After ordering, the subscriber is authorized to access the program for a limited time, (e.g. three hours, two days, etc.). Live sports specials are live events usually related to sports which subscribers are unlikely to watch on taped delay.

Mini pays are channels to which each set top box may subscribe. The subscriptions for mini pays 258 may be daily, weekly, or monthly. An example would be the Science Fiction channel. Data services are services in which information is interactively presented to the subscriber using a modem or other high rate of speed data transfer. Some examples are Prodigy, services for airline reservations, and TV guide services (e.g. TV Guide X*PRESS™, InSight™, etc.). Data could also include classified or other forms of advertising.

After selecting the type of programming, the packager must identify a pool of programs (within the category) to be packaged. The next CAP 246 step varies for different program categories. For the category of live sports, additional program interstitial elements 262 may be added such as promos and other sports news before further processing. For the live sports, static, interactive services 252 and pay per view 254 categories the following CAP 246 step is for one television program to be selected 264. This is followed by each program individually being assigned dates to be played or a start date (for continuous play) and start times 266. Many dates and start times may be assigned to any given program. The program information for these categories may then be processed for allocation of transponder space and setting of prices.

Mini pays and data services require less processing by the CAP 246. After identifying the mini pays 258, the CAP 246 may proceed to allocation of transponder space and pricing for the mini pays 258. Data services in the preferred embodiment generally do not require allocation of transponder space and generally do not require price setting. The information for data services 260 maybe directly processed for menu configuration. In alternate embodiments the data services 260 may be processed through these portions of the CAP 246 program.

The CAP 246 then uses an interactive algorithm to allocate transponder space 268 and set prices 270. The factors weighed by the algorithm are: 1. buy rates of the program, 2. margin of profit on the program, 3. length of the program, 4. any contractual requirement which overrides other factors (such as requirement to run a specific football game live in its entirety). The information on buy rates of the program may be obtained from the Central Statistical and Billing Site or a Regional Statistical and Billing Site as will be described later. The CAP 246 must consider the priority levels of programming when allocating transponder space. Particularly, as in the preferred embodiment, transponder are assigned to three specific priority levels.

Following transponder allocation and price setting, the CAP 246 proceeds to menu configuration 272. The positioning of programs within the menu configuration 272 can have an effect on subscriber buy rates for the program. Therefore, an algorithm accounting for either a manually assigned program importance, or a calculated weight of the program importance, is used to determine each programs position within the menu scheme. For instance, a popular program with a high profit margin may be assigned a high weight of importance and shown in a prominent place in the menu scheme. Alternatively, a high profit program with sagging sales may be manually assigned a prominent place in the program schedule to increase sales.

After a series of entries by the programmer/packager at the Operations Center 202, the CAP 246 displays draft menus or schedules (including priority levels) for programming. The packager may now manipulate the menus and schedules and make changes as he feels necessary. After each change, the packager may again display the menus or schedules and determine if any more changes are necessary. When the packager is satisfied with the menu configuration 272 and scheduling of television programs, he may then instruct the CAP 246 to complete the process.

After menu configuration 272, the CAP 246 may begin the process of generating a program control information signal 274. In order to generate program control information signals which are specific to a particular cable headend 208 system, the CAP 246 incorporates cable franchise configuration information 276. In the preferred embodiment, basic cable franchise configuration information 276 is stored at the Operations Center 202. The cable franchises upload changes to their specific franchise information from time to time to the Operations Center 202 for storage. Preferably a separate CPU handles the management of the cable franchise information. From the stored cable franchise information, the CAP 246 generates a cable franchise control information signal which is unique to each franchise.

Using the unique cable franchise control information signals 278 and the menu configuration 272 information, the CAP 246 generates the program control information signal 274. The program control information that is unique to a particular cable franchise may be identified in various ways such as with a header. With the header identification, the cable headend 208 may extract the portions of the program control information signal which it needs. Now, the CAP 246 may complete its process by electronically packaging the programs into groupings 280 for the signal transmission and adding the program control information to the packaged programs 282 to form a single signal for transmission. Through manual entries by the packager or by comparing against a list of programs, the CAP 246 will determine whether the programs are arriving from external sources 204 or sources internal to the Operations Center 202.

Upon completion of the CAP's functions, the Operations Center 202 or the uplink site compresses 284, multiplexes 286, amplifies 288 and modulates 290 the signal for satellite transmission 292. In a basic embodiment, the CAP 246 will also allow entry of time slots for local avails where no national programming will occur.

FIG. 5 is a more detailed flow chart of some of the functions performed by the CAP 246 after an initial program schedule has been entered and menu configurations generated. The flow chart 300 shows six basic functions that are performed by the CAP 246: (1) editing program schedule for local availability 304 (only for non-standard services, i.e. those services that are not national cable services); (2) generating program control information signals 307; (3) processing external programs 310; (4) processing internal programs 320; (5) processing live feeds 330; and, (6) packaging of program information 340. In an alternate embodiment, the CAP 246 is capable of incorporating local programs and accommodating local availability for local television stations.

Following completion of the programming scheduling (accounting for local availability if necessary) and menu generation 304, the CAP 246 may perform three tasks simultaneously, generating program information signals 307, processing external programs 310 and processing internal programs 320.

The CAP 246 automatically identifies external programs needed 312 and identifies which external feed to request the external program 314. The CAP 246 gathers and receives the external programming information and converts it to a standard digital format 316 for use.

The CAP 246 also identifies internal programs 322, accesses the internal programs 324, and converts them to a standard digital format if necessary 326. In addition, the CAP 246 identifies live signal feeds 333 that will be necessary to complete the packaged programming signal 336. In its final task, the CAP 246 completes the packaging of the programs, combines the packaged program signal with the program control information signal, amplifies the signal and sends it out for further processing prior to uplink.

In the preferred embodiment, the Operations Center 202 and uplink or master control site are collocated. However, the Operations Center 202 and uplink site may be located in different geographical places. Also, functions and equipment within the Operations Center 202 may be remotely located. For instance, the program storage maybe at a different site and the programs may be sent to the CAP 246 via landline.

In alternate embodiments using multiple Operations Centers, it is preferred that one Operation Center be designated the Master Operations Center and all other Operations Centers be Slave Operations Centers. The Master Operations Center performs the functions of managing and coordinating the Slave Operations Centers. Depending on the method in which the Slave Operations Centers share functions, the Master Operations Center coordination function may involve synchronization of simultaneous transmissions from multiple Slave Operations Centers. To perform its functions, the Master Operations Center may include a system clock for synchronization.

An efficient method of dividing tasks among Operations Centers is to assign specific satellite transponder to each Operations Center 202 and to assign external program sources 204 to the nearest Operations Center. Of course this division of resources may not always be possible. Since programming will be grouped into priority levels with each priority level likely to be assigned specific satellite transponder, it is also possible to assign each Operations Center to a priority level. For example, in a three priority level system with two Slave Operations Centers and 18 transponder, the Master Operations Center may be assigned priority level 1 and assigned 9 transponder. Slave Operations Center A may be assigned priority level 2 and 5 transponder, while Slave Operations Center B is assigned priority level 3 and 4 transponder. In a multiple Operations Center configuration dynamic bandwidth allocation and dynamic menu capacity allocation become more complex and must be coordinated by the Master Operations Center.

Similar to multiple Operations Centers, a delivery system may have multiple satellite uplinks. Preferably each Operations Center has one or more uplink sites. Each Operations Center controls the functions of its assigned uplink sites and may assign one site as a master uplink site.

The program control information signal generated by the Operations Center provides data on the scheduling and description of programs to the network controller 214 or in an alternate configuration directly to the set top terminal 220 for display to the subscriber. In the preferred embodiment, the program control information signal is stored and modified by the network controller 214 and sent to the set top terminal 220 in the form of a set top terminal control information stream (STTCIS). This configuration is required to accommodate differences in individual cable systems and possible differences in set top terminal devices. The set top terminal 220 integrates either the program control signal or the set top terminal control information stream together with data stored in the memory of the set top terminal 220, to generate on-screen displays for assisting the subscriber in choosing the programs he wishes to view. (Throughout the description the term “program control information” is being used to indicate control information coming from the cable headend 208 to the set top terminal 220, whether it is sent directly from the Operations Center, processed by the Network controller 214 and then forwarded to the set top box (STTCIS), or transmitted over telephone lines.)

The types of information that can be sent via the program control signal include: number of program categories, names of program categories, what channels are assigned to a specific category (such as specialty channels), names of channels, names of programs on each channel, program start times, length of programs, description of programs, menu assignment for each program, pricing, whether there is a sample video clip for advertisement for the program, and any other program, menu or product information.

The goal of the menu driven program selection system is to allow the subscriber to choose a program by touring through a series of menus utilizing a remote control for cursor movement. The final choice in the series of menus will identify one particular channel and one time for activation of that channel. Armed with a channel and activation time the set top terminal 220 can display the selected program on the television for the viewer. To achieve this goal a simple embodiment assigns an intelligent alpha-numeric code to each program. This alpha-numeric code identifies the category of the program, the menu in which the program should be displayed, its transmission time(s), and the position on the menu that the program should be displayed.

In this simple embodiment, the program control information, including these menu codes, is sent continuously from the Operations Center to the network controller 214, and ultimately to the set top terminal 220. For example, four hours worth of programming information can be sent via the program control information signal continuously in the format shown in FIG. 6.

FIG. 6 shows the basic information that is needed by the set top terminal 220. The program descriptions shown are coded abbreviations. For example, C for comedy, N for news, S for sports, A for cartoons, and TX for text. If there is a textual description for a program, such as a movie, the description may be given following that program's coded description or may be communicated following the four hours' worth of programming information. As is shown in the coded listing, program descriptions for programs greater than a half hour in length need not be repeated (each half hour). The video description code informs the set top terminal 220 of whether there is still or live video available to advertise the program.

For example, a sporting program maybe assigned a code of B35-010194-1600-3.25-Michigan St. vs. USC. The letter B would assign the program to category B, sports. The second alpha-numeric character number 3 would assign the program to the third menu of the sports category. The third character of the code, number 5, assigns the program to the fifth program slot on the third menu. The next six characters, 01101/94, represent the date. The following four characters, 1600 represent the start time which is followed by the length of the program and the program name. This entry represents a sports show, a college football game, which will be aired at 4:00 PM on New Years day 1994.

In the 12:30 Channel 1 entry of FIG. 6, two menu codes are shown. By allowing two menu codes, programs that may fit under two different category descriptions maybe shown in both menus to the subscriber. With this minimal amount of information being communicated to the set top terminal 220 on a regular basis, the terminal is able to determine the proper menu location for each program and the proper time and channel to activate for the subscriber after his menu selection.

The program control information signal and STTCIS can be formatted in a variety of ways and the on-screen menus can be produced in many different ways. For instance, if the program control information signal carries no menu format information, the menu format for creating the menus can be fixed in ROM at the set-top terminal. This method allows the program control signal to carry less information but has the least flexibility since the menu formats can not be changed without physically swapping the ROM holding the menu format information. In the preferred embodiment, the menu format information is stored at the set top terminal 220 in temporary memory either in a RAM or EPROM. This configuration provides the desired flexibility in the menu format while still limiting the amount of information needed to be communicated via the program control information signal. New menu format information would be sent via the program control information signal or the STTCIS to the set top terminals each time there was a change to a menu.

In the simplest embodiment, the menus remain fixed and only the text changes. Thus, the program control information signal can be limited to primarily text and a text generator can be employed in the set top terminal 220. This simple embodiment keeps the cost of the set top terminal 220 low and limits the bandwidth necessary for the program control information. Another simple embodiment uses a separate channel full-time (large bandwidth) just for the menu information.

As will be described later, live video signals maybe used in windows of certain menus. These video signals can be sent via the program control information signal, STTCIS, or can be taken off channels being transmitted simultaneously with the menu display. If the video signal is taken off a channel, less information needs to be sent via the program control information signal. However, this technique requires that separate decompression hardware be used for the program control information and the channel carrying the video. Separate decompressors for the video signals and program information signal allows for the greatest flexibility in the system and is therefore the preferred embodiment. A separate decompressor also assists in assuring that the switch from menus to television programming is smooth and without any significant time delay.

Live video for menus, promos or demos may be sent to the set top terminal 220 in several ways: a) on a dedicated channel, b) on a regular program channel and scaled to size, c) sent along with the program control information signal, etc. However, in the preferred embodiment, a great deal of short promos or demo video are sent using a split screen technique on a dedicated channel.

Using a split screen technique, any number of different video clips may be sent (e.g. 2,4,6,8). To show the video clip on a menu, the video must either be scaled and redirected to a video window on a menu screen or a masking methodology can be used. Masking involves playing the entire channel of video (all 2,4,6, or 8 split screens) in background and masking the unwanted video clip portions of the split screen by playing the menu in foreground and overlaying the unwanted background video. Masking is the least expensive method because it does not require any special hardware and it increases video throughput to the set top terminal 220. However, using the masking technique without any video redirecting causes each video clip to be located in a different position on the screen. It also requires the masking to be different for each video clip and makes consistent format difficult. Scaling and redirecting video is generally difficult, expensive and requires additional hardware.

In order to limit the amount of bandwidth needed to transmit the program control information signal, various compression techniques employed for non-video maybe used such as block coding, contour coding, blob encoding, and run-length encoding. Further, the program control information signal may be divided into text and graphics, or video, text and graphics and then recombined at the set top terminal 220 using a text generator, graphics decompression, and video decompression as necessary.

FIG. 7a shows a basic block diagram of a digital compression set top terminal 220. In some respects, the set top terminal 220 is similar to other converter boxes currently available and can include a variety of error detection, decryption 600 and coding techniques such as anti-taping encoding. The set-top terminal must also have a tuner 603, digital demodulator 606, and demultiplexers 609, 616 as well as audio equipment 612, 614. Also shown in FIG. 7a is a remote control interface 626 for receiving and processing signals from remote control unit 900. A modem 627 is provided for allowing communication between a microprocessor 602 and the cable head end. NTSC encoder 625 provides an NTSC video output to be output as a standard television signal.

The microprocessor 602 is capable of executing program instructions stored in memory. These instructions allow a user to access various menus by making selections on the remote control 900. The various program instructions for accessing menus and performing other functions are described below.

The manner in which the video is decompressed and the menus are generated from the program control signal or STTCIS varies depending on the specific embodiment of the invention. However, at a minimum, one video decompressor capable of decompressing one video signal must be used. Basic menu format information may be stored in a graphics memory comprising ROM, non-volatile RAM, EPROM, and/or EEPROM 620. Video decompressors 618 and 622 may be used if the video is compressed, and additional equipment to generate menus maybe included. In one embodiment, a separate decompressor 622 is used to process the program control information signal and a video combiner 624 incorporates video and menu graphic information. In the preferred embodiment, the program signal is sent with three primary parts, compressed video (or video location information), compressed graphics, and text. After the program signal is demultiplexed into its component parts, a video decompressor, a graphic decompressor, a text generator and a combiner are used to assist in creating the menus.

FIG. 7b shows a basic block diagram of an alternative digital compression set top terminal 220. The same components shown in FIG. 7a are repeated in FIG. 7b, and given the same reference number (e.g., tuner 603, modem 617, NTSC encoder 625, etc.). FIG. 7b also shows the addition of a smart card interface 617 to allow additional features to be included on a smart card insertable into the smart card interface 617. Error correction circuitry 607 is also shown receiving the demodulated signal, prior to demultiplexing the signal. Memory associated with the microprocessor 602, the demultiplexer 609, the decryptor 600, and the video decompressor 618 is shown in FIG. 7b.

Box 700 in FIG. 7b shows the elements of an upgrade module which is described below with respect to FIGS. 9a and 9 b. The remaining circuitry in FIG. 7b shows a basic decompression box 720, also described below.

The circuitry in box 700 includes a video, graphics and text demultiplexer 616, a text and graphics video plane combiner 624, a graphic decompressor 622 and a graphics memory 620. Graphics in memory 620 is preferably run-length compressed, however other methods of compressing graphics may be used as is known by those skilled in the art.

The generated menus and video are combined in the combiner 624 and output to an anti-taping encoder 619. Any method of anti-tapping encoding known by those skilled in the art may be used with the present invention.

FIGS. 8a and 8 b show front and back views respectively for the preferred embodiment of the set top terminal 220. The front panel of the set top terminal 220 as shown in FIG. 8a includes an infrared sensor 630 and a series of LED displays 640. These LED displays 640 preferably indicate with an icon or a letter (e.g. A-K) the major menu currently selected by the set top terminal 220. This visual display will remain lit while the subscriber is watching (or listening to) programming within a major menu. The LEDs 640 of the preferred embodiment also show the channels selected directly by a user, or menu channel selections which range from 1 to 50.

LEDs 640 are preferably provided to indicate a decompression error, a processing error, or other error. Text messages may alternatively be provided to more clearly indicate particular errors to servicemen or subscribers. These error indications aid in repairing or correcting any such errors in the set top terminal 220 or assist in programming the set top terminal 220. Further displays may include current channel, time, volume level, sleep time, parental lock (security), account balance, use of a hardware upgrade, second channel being recorded by VCR, use of the Level D music hardware upgrade in a separate room, and any other displays useful to a subscriber to indicate the current status of the set top terminal 220.

The LED's 640 may also provide an indication of the digital audio channel currently tuned. With this display feature, subscribers may use the digital audio feature without activating the television screen. The source of a signal and output selected (e.g., a subscriber's separate audio system, a VCR, etc.) may be displayed. Although LED's are preferred, the set top terminal 220 may also use a CRT, LCD's, or other display technology.

On the right front half of the set top terminal 220 there is a flapped opening 635 into a cavity that allows the insertion of a magnetic cartridge (or similar portable storage device, including optical disk, ROM, EPROM, etc.). This cartridge opening 635 allows the set top terminal 220 to be upgraded or reprogrammed locally with the use of a magnetic tape cartridge. Game cartridges may also be accepted through a similar flapped opening allowing the subscriber to play video games using the set top terminal 220.

On the top or cover of the set top terminal 220 are located pushbutton controls 645. In the preferred embodiment these pushbutton controls 645 duplicate the two-part alpha-iconic remote control that will be described later. Any function that can be performed on the remote may also be performed at the set top terminal 220 using the duplicative pushbutton controls 645.

FIG. 8b provides a rear view of one embodiment of the set top terminal 220 including the input/output equipment of the terminal. Moving from left to right there are a pair of output terminals 650, a pair of input terminals 652, a pair of stereo/audio output terminals 654, a satellite dish input port 656, a telephone jack 658 and an RS422 port 660. Further to the right there is an upgrade port 662 and a cover plate 664 held in place by a series of sheet metal screws.

The set top terminal 220 has two outputs 650, one for a television and one for a VCR. Control signals may be transmitted through the VCR output to allow the VCR to be automatically controlled by the set top terminal 220. Certain program may be selected by a subscriber from menus, and the VCR will be automatically activated to record the selected program.

The set top terminal 220 is equipped to handle one or two cable inputs by way of inputs 652 for incoming signals. In addition, a phone jack 658 and RS242 or 422 port 660 are provided for maintenance, trouble shooting, reprogramming and additional customer features. In alternate embodiments, the telephone jack 658 maybe used as the primary mode of communication between the cable headend 208 and the set top terminal 220. This connection is possible through the local telephone companies, cellular telephone companies or personal communications networks (PCN).

In an alternative configuration, in areas without cable services where subscribers use backyard satellite systems (TV RO) to receive packaged television services, the set top terminal 220 will include the appropriate hardware to allow connection to the satellite 206 reception equipment through port 656. In this configuration, the menu system within the set top terminal 220 will be programmed directly from the operations center. Additionally, an upstream communication mechanism must be in place at the subscriber's home (i.e. modem) to communicate information to the operations center.

In order to provide the greatest flexibility possible and prevent the set top terminal 220 from becoming outdated during the terminal's useful life, an additional electronic card slot or expansion slot has been built into the preferred embodiment. This expansion slot is covered by the metal plate cover 664 shown in FIG. 8b. It is anticipated that additional memory or capabilities may be needed for certain customer features and also to update the system as the cable delivery system's capabilities increase. The expansion slot provides an easy method to upgrade the terminal hardware.

In the preferred embodiment, the set top terminal 220 includes a hardware upgrade port 662 as shown in FIG. 8b, in addition to the expansion slots behind plate 664. The hardware upgrade port 662 should accommodate at least a four-wire connection for: (1) error corrected, decrypted data output of the set top terminal 220, (2) control interface, (3) decompressed video output of set top terminal 220, and (4) video input port. In the preferred embodiment multiple wires are used to perform each of the four functions. The four sets of wires are combined in a single cable with a single multipin connector. Port 662 may also be used to attach various hardware upgrades below to a set top terminal 220.

In the preferred embodiment, multipin connections may be used for the multiwire cable. The multipin connection 662 may range from DB9 to DB25. A SCSI, or small computer systems interface, port may also be provided. Alternatively, four or more ports may be provided instead of the single port depicted.

The preferred embodiment has four hardware upgrades available for a set top terminal 220: a Level B interactive unit, a Level C interactive unit with compact disc capability, a Level D digital radio tuner for separate room use, and a Level E information download unit. Each of these upgrades is connected to the set top terminal 220 unit via the same upgrade port 662 described earlier. The same four wires in a single cable described earlier may be used.

The Level B interactive unit will allow the user access to online data base services for applications such as home shopping, airline reservations, news, financial services, classified advertising, home banking, and interactive teletext services. For example, with this upgrade, a user will be able to reserve plane tickets or buy consumer electronics. The primary feature of this upgrade unit is that it allows actual transactions to occur requiring two way communications via modem with outside services. This added two way communications capability may be with the cable headend 208. Additionally, this two way communications may occur over cellular or PCN.

The Level C interactive unit will employ a high volume local storage capacity, including compact disc or other random access digital data formats. This unit will allow use of interactive multi-media applications. For example, computer games, multi-media educational software, encyclopedias, other reference volumes (e.g. Shakespeare library), etc. In the preferred embodiment, many of these applications will interact with live programming providing additional information and interactivity to the basic program feed. For example, a viewer watching a show set in a foreign country may be able to retrieve additional information, maps, economic data, etc. about that country that are stored on the compact disc. In the level C applications, the upgrade hardware may closely monitor the television broadcast via additional data channels (e.g. vertical blanking interval, or other digital data encoded within live video) providing context sensitive interactivity.

The Level D hardware upgrade, digital radio tuner, will allow the subscriber separate access to the digital radio channels while other programming (not necessarily radio) is being viewed on the television. Typically this upgrade would be used for digital radio usage in a separate room from that of the television. The upgrade has a separate tuner, decompressor, and visual display. In the preferred embodiment a second remote control (scaled down version) is provided to access the audio system.

The Level E hardware upgrade allows the subscriber to download large volumes of information from the operations center or cable headend 208. The Level E hardware upgrade will enable subscribers to download data such as books to local storage. Primary the Level E hardware upgrade is additional local storage via bard disk floppy, optical disk, magnetic cartridge etc. Preferably a small portable reader 725, called “EveryBook™” is also provided with the upgrade to enable downloaded text to be read without the use of a TV.

The downloadable information may be text or video supplied by the operations center or cable headend 208. With this upgrade, books may be downloaded and read anywhere with the portable reader. Using this upgrade video may be downloaded and stored in compressed form for later decompression. The video would be decompressed only at the time of viewing. Important text that the public desires immediate access may made available through this system. Text such as the President's speech, a new law, or a recent abortion decision rendered by the Supreme Court may be made immediately available.

Using a more sophisticated port, especially the SCSI port, multiple hardware upgrade units may be connected, or “daisy-chained” together, to operate simultaneously.

FIG. 9a shows sets of wires in a single cable connecting an upgrade module 700 and the simple decompression box 720 through a port similar to the hardware upgrade port 662. The simple decompression box 720 preferably is an industry standard decompression box capable of communicating with an upgrade module to enhance functionality. For example, a microprocessor in the simple decompression box 720 will be able to communicate with a microprocessor in an upgrade module 700.

Thus, as shown in FIG. 9a, if this type of connection is built into a simple decompression box that does not have the full functionality of the set top terminal 220, an upgrade module unit 700 may be connected providing the simple decompression box 720 with the full functionality of a set top terminal 220. Subscribers who have purchased simple decompression boxes 720 may be given all the functions of a set top terminal 220 inexpensively.

In the preferred embodiment, multipin connections may be used for a multiwire cable connecting decompression box 720 with the upgrade module 700. The multipin connection may range from DB9 to DB25. A SCSI, or small computer systems interface, port may also be provided. Alternatively, four or more ports may be provided instead of the single port depicted.

The digital data set of output wires of the simple decompression box 720 will preferably output error corrected and decrypted data to the upgrade set top terminal 700. The second set of wires, the interface connection, allows the microprocessor in the upgrade module 700 to communicate to the microprocessor of the simple decompression box 720. In this manner, the video circuitry of the upgrade module 700 and the simple decompression box 720 may be synchronized. The third set of wires, the decompressed video output, can provide the upgrade module 700 with a decompressed video signal to manipulate. The fourth set of wires, video input set, allows the simple decompression box 720 to accept a video signal that is a combined text, graphics, and video signal.

Upgrade module 700 preferably includes at least the following circuitry: a video, graphics and text demultiplexer; a text and graphics video plane combiner; a run-length graphics decompressor; and, a run-length compressed graphics memory (non-volatile RAM, ROM, EPROM, or EEPROM). By means of communications through the multi wire connection between upgrade modules 700 and simple decompression box 720, compressed video and control signals may be demultiplexed by the demultiplexer within upgrade module 700. The run-length graphics decompressor, by communicating with the run-length compressed graphics RAM, permits decompression of the input compressed video signal. The text and graphics video plane combiner in upgrade module 700 allows the demultiplexed and decompressed signal to be output, through simple decompression box 720, to a subscriber's television with both video and overlay menus with text.

FIG. 9a shows the CATV input 722, the video input 724, and the video and audio outputs 726,728, as part of simple decompression box 720. This is the preferred embodiment because this will reduce the component cost of upgrade module 700. Upgrade module 700 could simply be a cartridge insertable into simple decompression box 720. Alternatively, as shown in FIG. 9b, the CATV input 722, the video input 724 and the video and audio outputs 726, 728 may be included as part of upgrade module 700.

The electronics of the set top terminal 220 must receive signals from the Cable headend 208 or Operations Center and separate the program control information from the packaged programs. After separation of the program control information, this signal may be used to generate program menus allowing the user to select specific television programs from within the packaged programs. After selection of a particular program, the set top terminal 220 will demultiplex and extract a single channel signal then decompress the appropriate channel signal to allow the user to watch his selected program. Although the set top terminal 220 can be equipped to decompress all the program signals, this adds unnecessary cost since the subscriber will view one channel at a time. Upon the occurrence of an error in this selection and decompression procedure, the set top terminal 220 LED display will warn the subscriber of an error.

During the normal functioning of the set top terminal 220 the LED display can be customized by the user to display the time, the program channel, VCR activation or other pertinent information. Although the set top terminals may be operated using the keyboards located on top of the set top terminal 220 box, it is expected that most subscribers will use the remote control.

Although the preferred embodiment decompresses one channel at a time for the viewer, users who desire to use the picture-on-picture capability of their televisions can be provided with an upgrade to the set top terminal 220 allowing two channels to be tuned and decompressed at any given time. Once two signals are available to the television the picture-on-picture capability may be utilized to its fullest potential. With the picture-on-picture capability available in the set top terminal 220, a special television is not required for picture-on-picture functionality.

In the preferred embodiment all of the customer features available on the set top terminal 220 will be controllable via on-screen menu displays. In this manner, the subscriber using a cursor may easily customize the programming of his set top terminal 220. The basic programming of each set top terminal 220 will be located on ROM within the set top terminal 220. Random access memory, the magnetic cartridge capability, and the extension card slot will each allow upgrades and changes to be easily made to the set top terminal 220.

In the preferred embodiment, the set top terminal 220 will include features that are now being adopted in the industry such as parental controls and locks, electronic diagnostics and error detection, mute, on-screen volume control, sleep timer, recall of last selection, etc. Each of these features has a corresponding menu that allows on-screen customizing and activation of the feature. The set top terminal 220 also includes a sophisticated favorite channel list and favorite program list.

In addition to all the features that the set top terminals supports with its current internal programming, additional features may be added or existing features upgraded through remote reprogramming of the set top terminal 220. Utilizing the resident operating system on the ROM, the cable head end is able to reprogram the random access memory of the set top terminal 220. With this capability the cable head end can remotely upgrade software on the set top terminals.

In the preferred embodiment, the cable head end will reprogram the menu format from time to time based upon special events or programming needs, such as Olympic telecasts, presidential elections, etc. This reprogramming will occur by using the program control information channel and sending the appropriate signals over this channel. In an alternative embodiment, one channel is dedicated for the special programming needs. When reprogramming is to occur, the cable head end will send an interruption sequence on the program control information channel that informs the set top terminal 220 that reprogramming information is to follow. Significant reprogramming of the set top terminals will occur infrequently. However, the changing of color or formats on menus occur more often. In alternative embodiments, color changes to menus maybe accomplished via the program control information itself and does not require reprogramming from the cable head end.

In the preferred embodiment, the basic building blocks or templates of the on-screen menu displays will be stored on graphics memory consisting of no-volatile RAM, ROM, EPROM, or preferably, EEPROM, as shown as 620 in FIG. 10. With the information from this graphics memory 620, the microprocessor 602, graphics decompressor 622, text generator 621 (if necessary), and video combiner 624 will build a menu screen. The memory files of the graphics memory or EEPROM 620 are preferably categorized into three categories, background graphics 800, logo graphics 820, and menu and display graphics 850.

A background graphics file 800 will store menu backgrounds such as: universal main menu backgrounds 804, universal submenu backgrounds 808, promo backgrounds 812 and custom menu formats 816. A logo graphics file 820 will store any necessary logos such as: Your Choice TV logos 824, Network logo files 828, cable system logo files 832, studio logo files 836, and graphic elements file 840. A menu display and cursor graphics file 850 will store menu display blocks 854 and cursor highlight overlays 858 as well as any other miscellaneous files needed to build the menus.

Using this method of storing menus, the menus can be changed by reprogramming the graphics memory 620 of the set top terminal 220. To revise the entire design of displayed menus, the network controller 214 or operations center instructs the EEPROM 620 to be erased and reprogrammed with new menu templates. To change one menu format or logo, the network controller 214 or operations center instructs just the one location in memory to be erased and rewritten. Obviously, this menu reprogramming can be done locally (at the set top terminal 220) by a servicemen.

As shown in FIG. 10a, each memory subfile is further divided into various memory blocks. For example, the background graphics file 800 contains the universal main menu backgrounds 804. The universal main menu backgrounds memory 804 includes memory units UM1, UM2 and UM3, as shown in FIG. 10a. Similarly, the logo graphics file 820 and menu display and curser graphics file 850 further contain within those subfile individual memory blocks (for example, studio logo file 836 has memory block SL1; menu displayblocks 854 has memory menu display block MD1).

FIG. 10b shows the hierarchical storage of text transmitted from the cable head end as STTSCIS. Although text maybe continuously transmitted with the video signals to set top terminals 220, text may also be transmitted intermittently. In such a case, the text is stored in the set top terminal. Preferably, the text is transmitted and stored in a compressed format using known techniques. Additionally, the text is preferably stored in graphic memory 620 within set top terminal 220.

Depending upon the use of the text, it will be stored in one of three portions of memory. Information sent with the text will either direct the text to a particular portion of memory, or include information as to the priority of text. The microprocessor 602 may then direct the text to the appropriate memory location for storage.

If the text is to be used frequently and over a long period of time, a long term storage 875 will be used. If the text will be used for a shorter period of time (for example, a month), the text will be directed to an intermediate storage area 877. If the text is to be used almost immediately, or for a short period of time (for example, within a few days) the text is directed to a short term storage area 879. Microprocessor 602 locates the appropriate text required for a particular menu and retrieves it from the appropriate portion of memory 620. The text is output from the graphics memory 620 to the text generator 621. Text generated from the text generator 621 is thereafter directed to text/graphics combiner 624.

FIG. 10c shows the steps performed by the microprocessor 602 for creating a menu based upon a series of overlay screens. These instructions are stored in memory within the set top terminal 220. Alternatively, these instructions or routines are transmitted from the operations center 202 to be stored in memory within the individual set top terminals 220.

Initially, microprocessor 602 instructs tuner 603 to select a channel. The channel is decompressed, and error corrected and decrypted, if necessary. If the video is to be reduced in size, so as to be placed within a video window 1556, or is a split screen video window which must be enlarged, the video is scaled to the appropriate size. Additionally, the video may be required to be redirected to a portion of the television screen. This is done by creating a series of offsets for each pixel location of the video.

Graphics must also be used to create a menu in most instances. As is shown in block 882, the microprocessor 602 must fetch a background file, fetch a logo file and fetch a menu display and cursor file in most instances. Each of these files must be decompressed. Following decompression, the file is sent to video combiner 886.

Similarly, microprocessor 602 must fetch text, as shown in block 884. Depending upon the memory location of the text, microprocessor 602 will fetch the text for long-term, intermediate-term, or short-term storage, as described above. Based upon this memory retrieval, the text is generated and sent to video combiner 886. Video combiner 886 combines the video (if any) with as many screens of a decompressed graphics as are necessary, and any text. The image or portions of the image are stored in combiner 886 until all overlays are received by combiner 886. Thereafter, the entire image is sent, under direction of another routine, to be displayed on the television screen, as represented by display block 888.

FIG. 10d is a full chart of programming instructions performed by microprocessor 602 for sequencing menus. Upon powerup of the set top terminal 220, start up routine 890 is performed. Any error checking is thereafter performed (891), and introductory menu subroutine 892 is performed. This subroutine displays the introductory menu and the microprocessor thereafter awaits for an input 893.

If the subscriber inputs a channel selection 894, video for the particular channel is decompressed 895. Otherwise, the microprocessor performs another routine 896 to display the home menu 897.

At the home menu portion of the sequence of routines, a subscriber may select one of the major menus, thus starting the sequence of displays represented by routine block 898. Alternatively, a subscriber may go directly to a major menu by depressing a menu select button on remote 900 and the microprocessor will execute another the go to submenu subroutine 896.

Once a subscriber has selected a major menu, the appropriate subroutines are executed by the microprocessor using a series of instructions shown in block 898. After each display, microprocessor 602 awaits for a selection by the subscriber, shown as block 899. These blocks could be also represented as decision blocks.

After displaying the major menu, and receiving a selection by the user, a particular submenu for a subcategory is displayed, if such a menu exists. Again, microprocessor 602 waits for an input from the subscriber after executing a routine to display a program listing submenu. Thereafter, after receiving an input, microprocessor 602 performs the next routine for displaying a program description submenu. Thereafter, if a particular selection requires a confirmation menu, that subroutine is executed and the appropriate menu displayed. Thereafter, the selected video is decompressed, and displayed on the television screen. If there are any display overlay menus or hidden menus, the proper subroutine is executed by microprocessor 602 and these menus are displayed.

At any time during the selection of menus in major menu block 898, the subscriber may also depress another major menu button to move into a second column of process instructions (represented by major menu 2, major menu 3, etc. columns). Thus, a subscriber may move from major menu to major menu. Additionally, a subscriber may depress a home menu button on remote 900 to return to the home menu at any time.

The various subroutines executed by microprocessor 602 allow a subscriber to navigate through the various menus of the present invention. A subscriber may sequence back through menus or return to the home menu with a one-touch return of the home menu button on remote 900. All of these functions help to add to the system's user friendliness. 

What is claimed is:
 1. A system for viewing electronic books, comprising: a set top terminal, connectable to a television program delivery system, wherein the set top terminal receives compressed electronic books from the television program delivery system; and a portable viewer coupled to the set top terminal, wherein the portable viewer receives the electronic books from the set top terminal and displays the electronic books, wherein the electronic books are decompressed prior to being displayed.
 2. The system of claim 1, wherein the electronic books include graphical information, wherein the set top terminal receives the graphical information, and wherein the portable viewer receives and displays the graphical information.
 3. The system of claim 1, wherein the television program delivery system includes a cable television headend, wherein the cable television headend provides the electronic books for delivery in the television program delivery system.
 4. The system of claim 1, wherein the television program delivery system includes an operations center, wherein the operations center provides the electronic books for delivery in the television program delivery system.
 5. The system of claim 1, wherein the set top terminal includes a hardware upgrade, comprising additional local storage, wherein the electronic books are stored in the local storage.
 6. The system of claim 5, wherein the local storage includes one or more of a hard disk, a floppy disk, an optical disk and a magnetic cartridge.
 7. The system of claim 5, wherein the local storage stores the electronic books in compressed form.
 8. The system of claim 1, further comprising: a memory to store the electronic books in compressed form; a decompressor to decompress the compressed stored electronic books; and a display to display the decompressed stored electronic books.
 9. The system of claim 8, wherein the decompressor decompresses the compressed stored electronic books only at a time of viewing the electronic books.
 10. The system of claim 1, wherein the electronic books are provided with a video signal in the television program delivery system.
 11. The system of claim 10, wherein the electronic books are transmitted in a vertical blanking interval of the video signal. 